package org.geekbang.projects.injection.jmx;


import org.geekbang.projects.injection.Component;

import java.lang.annotation.*;
import java.util.HashMap;
import java.util.Map;

@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Component
public @interface MBeanRegister {

	/**
	 * 域
	 * @return
	 */
	String domain();

	/**
	 * 属性加载器
	 */
	Class<? extends PropertiesLoader> propertiesLoader() default EmptyPropertiesLoader.class;

	/**
	 * 默认的加载器
	 *
	 */
	public static class EmptyPropertiesLoader implements PropertiesLoader{

		@Override
		public Map<String, String> load() {
			return new HashMap<>();
		}
	}

}
